system design challenge